<?php
session_start();
class buscarQuestao extends Tpage{

	private $_data=null;
	private $_dataDisciplina;
	private $_questao;
	private $_isPar = 0;
	


	public function pesquisaQuestao($sender, $param){

		$paramSelecionado = $this->collectSelectionResult($this->parametro);
		$_SESSION['paramSelecionado'] = $paramSelecionado;
		$_SESSION['descricao'] = $this->descricaoBusca->Text;

		if($paramSelecionado == 1){
				
				
			$this->loadData();
				
			if($this->_data["0"]["PKCodLongQuestao"] == null){
				$this->mensagenErro->Text = "Não foi encontrado nenhum registro";
			}else{
				$this->mensagenErro->Text = "";
			}
			$this->DataList->EditItemIndex=-1;
			$this->DataList->DataSource=$this->Data;
			$this->DataList->dataBind();
				
				
		}else if($paramSelecionado == 2){
				
				
			$this->loadData();
				
			if($this->_data["0"]["PKCodLongQuestao"] == null){
				$this->mensagenErro->Text = "Não foi encontrado nenhum registro";
			}else{
				$this->mensagenErro->Text = "";
			}
			$this->DataList->EditItemIndex=-1;
			$this->DataList->DataSource=$this->Data;
			$this->DataList->dataBind();
				
		}else if($paramSelecionado == 3){
				
				
			$this->loadData();
				
			if($this->_data["0"]["PKCodLongQuestao"] == null){
				$this->mensagenErro->Text = "Não foi encontrado nenhum registro";
			}else{
				$this->mensagenErro->Text = "";
			}
			$this->DataList->EditItemIndex=-1;
			$this->DataList->DataSource=$this->Data;
			$this->DataList->dataBind();
		}

	}



	protected function getData()
	{
		if($this->_data===null)
		$this->loadData();
		return $this->_data;
	}

	protected function loadData()
	{

		if($_SESSION['paramSelecionado'] == 1){

			$this->_questao = questaoRecord::finder()->findAll('FKCodLongUsuario = ?', $_SESSION['idUsuario']);
				
			foreach ($this->_questao as $dados=>$valor){
				$_disciplina = disciplinaRecord::finder()->findbyPk($this->_questao["0"]->FKCodStrDisciplina);


				$vetor []= (array(
            					'PKCodLongQuestao'=>$valor->PKCodLongQuestao,
            					 'StrDisciplina'=> $valor->StrHtml,//$_disciplina->StrDisciplina,
					
				));
			}
		}
		if($_SESSION['paramSelecionado'] == 2){
			$this->_questao = questaoRecord::finder()->findbyPk($_SESSION['descricao']);

			$vetor []= (array(
            					'PKCodLongQuestao'=>$this->_questao->PKCodLongQuestao,
            					 'StrDisciplina'=> $this->_questao->StrHtml,

			));
		}
			
		if($_SESSION['paramSelecionado'] == 3){
			$this->_questao = questaoRecord::finder()->findAll('FKCodStrDisciplina = ?' ,$_SESSION['descricao']);

			foreach ($this->_questao as $dados=>$valor){
				
				$vetor []= (array(
            					'PKCodLongQuestao'=>$valor->PKCodLongQuestao,
            					 'StrDisciplina'=> $valor->StrHtml,
					
				));
			}
		}
		$this->_data=$vetor;
		$this->saveData();
	}

	protected function saveData()
	{
		$this->setViewState('Data',$this->_data);
	}

	/*
	 * carrega os dados na tabela
	 */
	public function onLoad($param)
	{
		parent::onLoad($param);
		if(!$this->IsPostBack)
		{
			if($_SESSION['isEdit'] == true){
				$this->mensagem->Text = "Questão atualizada com sucesso";
				$_SESSION['isEdit'] = false;
			}else{
				$this->mensagem->Text = "";
			}
			$this->usuarioLogado->Text = $_SESSION['usuario'];

			$this->DataList->DataSource=$this->Data;
			$this->DataList->dataBind();
				
		}
			
	}

	/*
	 * criar um item(usuario) da tabela
	 */
	public function itemCreated($sender,$param)
	{
		$item=$param->Item;
		if($item->ItemType==='EditItem')
		{
			// set column width of textboxes
			//$item->BookTitleColumn->TextBox->Columns=40;
			//$item->PriceColumn->TextBox->Columns=5;

		}
		if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem' || $item->ItemType==='EditItem')
		{
			//janela de alerta para a exclusao
			$item->DeleteColumn->Button->Attributes->onclick='if(!confirm(\'Deseja realmente deletar esse usuárioS?\')) return false;';
		}
	}

	/*
	 * deleta o usuário
	 */
	protected function deleteQuestao($id)
	{
			
		if($this->_data===null)
		$this->loadData();
		$deleteIndex=-1;

		foreach($this->_data as $index=>$row)
		if($row['PKCodLongQuestao']===$id)
		$deleteIndex=$index;
		if($deleteIndex>=0)
		{
				
			unset($this->_data[$deleteIndex]);
			questaoRecord::finder()->deleteByPk($id);
			$this->saveData();

		}
	}

	/*
	 * pega o chave primera que ta na tabela que eu configurei lá no .page
	 * chama o deleteUsuario() que é responsavel por remove o item da tabela e remover o usuário do banco de dados
	 */
	public function deleteItem($sender,$param)
	{

		$this->deleteQuestao($this->DataList->DataKeys[$param->Item->ItemIndex]);
		$this->DataList->EditItemIndex=-1;
		$this->DataList->DataSource=$this->Data;
		$this->DataList->dataBind();

	}


	public function editItem($sender,$param)
	{
		$item=$param->Item;

		$_SESSION['idQuestao'] = $this->DataList->DataKeys[$item->ItemIndex];
		$url = "?page=questao/editarQuestao";
		
		$this->Response->  redirect($url);
		

	}

	public function cancelItem($sender,$param)
	{

		$this->DataList->SelectedItemIndex=-1;
		$this->DataList->EditItemIndex=-1;
		$this->DataList->DataSource=$this->Data;
		$this->DataList->dataBind();
	}



	protected function updateTema($id,$nome, $idDisicplina)
	{
		if($this->_data===null)
		$this->loadData();
		$updateRow=null;
		foreach($this->_data as $index=>$row)
		if($row['PKCodLongTema']===$id)
		$updateRow=&$this->_data[$index];
		if($updateRow!==null)
		{
			/*
			 *Atualiza o usuário com os novos dados vindo da tabela de edição
			 *em faze de beta
			 */
				
			$tema = temaRecord::finder()->findbyPk($id);
				
			$tema->StrTema = $nome;
			$tema->FKCodStrDisciplina = $idDisicplina;
			$tema->save();

			/*
			 * atualiza a tabela da visão com os dados novos
			 */
			$updateRow['nome']=$nome;
				

			$this->saveData();
		}
	}

	public function updateItem($sender,$param)
	{
		$item=$param->Item;
		$this->updateTema(
		$this->DataList->DataKeys[$item->ItemIndex],
		$item->StrTema->Text,
		$item->Disciplina->SelectedValue);
		$this->DataList->EditItemIndex=-1;
		$this->DataList->DataSource=$this->Data;
		$this->DataList->dataBind();
	}

	public function getDisciplina(){

		$_disciplina =  disciplinaRecord::finder()->findAll();


			
		foreach ($_disciplina as $dados=>$valor){

			$vetor []= (array(
            					'PKCodStrDisciplina'=>$valor->PKCodStrDisciplina,
            					'disciplina'=>$valor->StrDisciplina,
			));
		}
			
		return $vetor;
	}


	protected function collectSelectionResult($input)
	{
		$indices=$input->SelectedIndices;
		$result='';
		foreach($indices as $index)
		{
			$item=$input->Items[$index];
			$result = $item->Value;
		}
		return $result;
	}

}

?>